#include "vofa.h"
#include "usart.h"

uint8_t temps[60];

float Get_Data(uint8_t *DataBuff)
{
    uint8_t data_Start_Num 	= 0; 
    uint8_t data_End_Num = 0; 
    uint8_t data_Num = 0; 
    uint8_t minus_Flag= 0; 
    float data_return = 0;
//
    for(uint8_t i=0;i<200;i++)
    {
        if(DataBuff[i] == '=') data_Start_Num = i + 1;
        if(DataBuff[i] == '!')
        {
            data_End_Num = i - 1;
            break;
        }
    }
//		
    if(DataBuff[data_Start_Num] == '-')
    {
        data_Start_Num += 1; 
        minus_Flag = 1; 
    }
    data_Num = data_End_Num - data_Start_Num + 1;
    if(data_Num == 4)
    {
        data_return = (DataBuff[data_Start_Num]-48)  + (DataBuff[data_Start_Num+2]-48)*0.1f +
                (DataBuff[data_Start_Num+3]-48)*0.01f;
    }
    else if(data_Num == 5) 
    {
        data_return = (DataBuff[data_Start_Num]-48)*10 + (DataBuff[data_Start_Num+1]-48) + (DataBuff[data_Start_Num+3]-48)*0.1f +
                (DataBuff[data_Start_Num+4]-48)*0.01f;
    }
    else if(data_Num == 6) 
    {
        data_return = (DataBuff[data_Start_Num]-48)*100 + (DataBuff[data_Start_Num+1]-48)*10 + (DataBuff[data_Start_Num+2]-48) +
                (DataBuff[data_Start_Num+4]-48)*0.1f + (DataBuff[data_Start_Num+5]-48)*0.01f;
    }
		 else if(data_Num == 7) 
    {
        data_return = (DataBuff[data_Start_Num]-48)*1000 + (DataBuff[data_Start_Num+1]-48)*100 + (DataBuff[data_Start_Num+2]-48)*10 +
                (DataBuff[data_Start_Num+3]-48) + (DataBuff[data_Start_Num+5]-48)*0.1f+(DataBuff[data_Start_Num+6]-48)*0.01f;
    }
				 else if(data_Num == 8) 
    {
        data_return = (DataBuff[data_Start_Num]-48)*10000 + (DataBuff[data_Start_Num+1]-48)*1000 + (DataBuff[data_Start_Num+2]-48)*100 +
                (DataBuff[data_Start_Num+3]-48)*10 + (DataBuff[data_Start_Num+4]-48)+(DataBuff[data_Start_Num+6]-48)*0.1f+(DataBuff[data_Start_Num+7]-48)*0.01f;
    }
		
		
    if(minus_Flag == 1)  data_return = -data_return;
    return data_return;
}

void Send_vofa(uint8_t length)
{
	
	uint8_t tail[4]={0x00,0x00,0x80,0x7f};
	uint8_t j;
	for(uint8_t i=0;i<length;i++)
	{
		for(j=4*(i);j<4*(i+1);j++){
			temps[j]=((uint8_t*)(&te))[j];
		}
		
	}
	
	temps[length*4]=tail[0];
	temps[length*4+1]=tail[1];
	temps[length*4+2]=tail[2];
	temps[length*4+3]=tail[3];

	HAL_UART_Transmit_DMA(&huart6,temps,length*4+4);
}
